﻿using System;
using System.ComponentModel;
using System.Reflection;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGiContext : OdRxObject
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdGiContext(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdGiContext_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdGiContext obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdGiContext()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdGiContext(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public OdGiContext() : this(GlobalsPINVOKE.new_OdGiContext(), MemoryManager.GetMemoryManager().GetCurrentTransaction() == null)
		{
			MemoryTransaction currentTransaction = MemoryManager.GetMemoryManager().GetCurrentTransaction();
			if (currentTransaction != null)
			{
				currentTransaction.AddObject(new OdGiContext(this.swigCPtr.Handle, true));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			this.SwigDirectorConnect();
		}

		public new static OdGiContext cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiContext_cast(OdRxObject.getCPtr(pObj));
			OdGiContext result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiContext_desc(), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("isA", OdGiContext.swigMethodTypes1) ? GlobalsPINVOKE.OdGiContext_isASwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_isA(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("queryX", OdGiContext.swigMethodTypes0) ? GlobalsPINVOKE.OdGiContext_queryXSwigExplicitOdGiContext(this.swigCPtr, OdRxClass.getCPtr(protocolClass)) : GlobalsPINVOKE.OdGiContext_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public static OdGiContext createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiContext_createObject();
			OdGiContext result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiContext)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxObject database()
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiContext_database(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiDrawable openDrawable(OdDbStub drawableId)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiContext_openDrawable(this.swigCPtr, OdDbStub.getCPtr(drawableId));
			OdGiDrawable result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiDrawable)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiDrawable)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiDrawable)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual LineWeight defaultLineWeight()
		{
			LineWeight result = (LineWeight)(this.SwigDerivedClassHasMethod("defaultLineWeight", OdGiContext.swigMethodTypes4) ? GlobalsPINVOKE.OdGiContext_defaultLineWeightSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_defaultLineWeight(this.swigCPtr));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual double commonLinetypeScale()
		{
			double result = this.SwigDerivedClassHasMethod("commonLinetypeScale", OdGiContext.swigMethodTypes5) ? GlobalsPINVOKE.OdGiContext_commonLinetypeScaleSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_commonLinetypeScale(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void getDefaultTextStyle(OdGiTextStyle textStyle)
		{
			if (this.SwigDerivedClassHasMethod("getDefaultTextStyle", OdGiContext.swigMethodTypes6))
			{
				GlobalsPINVOKE.OdGiContext_getDefaultTextStyleSwigExplicitOdGiContext(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_getDefaultTextStyle(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawShape(OdGiCommonDraw pDraw, OdGePoint3d position, int shapeNumber, OdGiTextStyle pTextStyle)
		{
			if (this.SwigDerivedClassHasMethod("drawShape", OdGiContext.swigMethodTypes7))
			{
				GlobalsPINVOKE.OdGiContext_drawShapeSwigExplicitOdGiContext__SWIG_0(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), shapeNumber, OdGiTextStyle.getCPtr(pTextStyle));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawShape__SWIG_0(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), shapeNumber, OdGiTextStyle.getCPtr(pTextStyle));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawShape(OdGiConveyorGeometry pDest, OdGePoint3d position, OdGeVector3d direction, OdGeVector3d upVector, int shapeNumber, OdGiTextStyle pTextStyle, OdGeVector3d pExtrusion)
		{
			if (this.SwigDerivedClassHasMethod("drawShape", OdGiContext.swigMethodTypes8))
			{
				GlobalsPINVOKE.OdGiContext_drawShapeSwigExplicitOdGiContext__SWIG_1(this.swigCPtr, pDest.GetCPtr(), OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(direction), OdGeVector3d.getCPtr(upVector), shapeNumber, OdGiTextStyle.getCPtr(pTextStyle), OdGeVector3d.getCPtr(pExtrusion));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawShape__SWIG_1(this.swigCPtr, pDest.GetCPtr(), OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(direction), OdGeVector3d.getCPtr(upVector), shapeNumber, OdGiTextStyle.getCPtr(pTextStyle), OdGeVector3d.getCPtr(pExtrusion));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawText(OdGiCommonDraw pDraw, OdGePoint3d position, string msg, OdGiTextStyle pTextStyle, uint flags)
		{
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes9))
			{
				GlobalsPINVOKE.OdGiContext_drawTextSwigExplicitOdGiContext__SWIG_0(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), msg, OdGiTextStyle.getCPtr(pTextStyle), flags);
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawText__SWIG_0(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), msg, OdGiTextStyle.getCPtr(pTextStyle), flags);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawText(OdGiCommonDraw pDraw, OdGePoint3d position, string msg, OdGiTextStyle pTextStyle)
		{
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes10))
			{
				GlobalsPINVOKE.OdGiContext_drawTextSwigExplicitOdGiContext__SWIG_1(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), msg, OdGiTextStyle.getCPtr(pTextStyle));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawText__SWIG_1(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), msg, OdGiTextStyle.getCPtr(pTextStyle));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawText(OdGiCommonDraw pDraw, OdGePoint3d position, double height, double width, double oblique, string msg)
		{
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes11))
			{
				GlobalsPINVOKE.OdGiContext_drawTextSwigExplicitOdGiContext__SWIG_2(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), height, width, oblique, msg);
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawText__SWIG_2(this.swigCPtr, OdGiCommonDraw.getCPtr(pDraw), OdGePoint3d.getCPtr(position), height, width, oblique, msg);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void drawText(OdGiConveyorGeometry pDest, OdGePoint3d position, OdGeVector3d direction, OdGeVector3d upVector, string msg, bool raw, OdGiTextStyle pTextStyle, OdGeVector3d pExtrusion)
		{
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes12))
			{
				GlobalsPINVOKE.OdGiContext_drawTextSwigExplicitOdGiContext__SWIG_3(this.swigCPtr, pDest.GetCPtr(), OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(direction), OdGeVector3d.getCPtr(upVector), msg, raw, OdGiTextStyle.getCPtr(pTextStyle), OdGeVector3d.getCPtr(pExtrusion));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_drawText__SWIG_3(this.swigCPtr, pDest.GetCPtr(), OdGePoint3d.getCPtr(position), OdGeVector3d.getCPtr(direction), OdGeVector3d.getCPtr(upVector), msg, raw, OdGiTextStyle.getCPtr(pTextStyle), OdGeVector3d.getCPtr(pExtrusion));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void textExtentsBox(OdGiTextStyle textStyle, string msg, uint flags, OdGePoint3d min, OdGePoint3d max, OdGePoint3d pEndPos)
		{
			if (this.SwigDerivedClassHasMethod("textExtentsBox", OdGiContext.swigMethodTypes13))
			{
				GlobalsPINVOKE.OdGiContext_textExtentsBoxSwigExplicitOdGiContext__SWIG_0(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), msg, flags, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max), OdGePoint3d.getCPtr(pEndPos));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_textExtentsBox__SWIG_0(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), msg, flags, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max), OdGePoint3d.getCPtr(pEndPos));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void textExtentsBox(OdGiTextStyle textStyle, string msg, uint flags, OdGePoint3d min, OdGePoint3d max)
		{
			if (this.SwigDerivedClassHasMethod("textExtentsBox", OdGiContext.swigMethodTypes14))
			{
				GlobalsPINVOKE.OdGiContext_textExtentsBoxSwigExplicitOdGiContext__SWIG_1(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), msg, flags, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_textExtentsBox__SWIG_1(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), msg, flags, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void shapeExtentsBox(OdGiTextStyle textStyle, int shapeNumber, OdGePoint3d min, OdGePoint3d max)
		{
			if (this.SwigDerivedClassHasMethod("shapeExtentsBox", OdGiContext.swigMethodTypes15))
			{
				GlobalsPINVOKE.OdGiContext_shapeExtentsBoxSwigExplicitOdGiContext(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), shapeNumber, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_shapeExtentsBox(this.swigCPtr, OdGiTextStyle.getCPtr(textStyle), shapeNumber, OdGePoint3d.getCPtr(min), OdGePoint3d.getCPtr(max));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual uint circleZoomPercent(OdDbStub viewportId)
		{
			uint result = this.SwigDerivedClassHasMethod("circleZoomPercent", OdGiContext.swigMethodTypes16) ? GlobalsPINVOKE.OdGiContext_circleZoomPercentSwigExplicitOdGiContext(this.swigCPtr, OdDbStub.getCPtr(viewportId)) : GlobalsPINVOKE.OdGiContext_circleZoomPercent(this.swigCPtr, OdDbStub.getCPtr(viewportId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool isPlotGeneration()
		{
			bool result = this.SwigDerivedClassHasMethod("isPlotGeneration", OdGiContext.swigMethodTypes17) ? GlobalsPINVOKE.OdGiContext_isPlotGenerationSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_isPlotGeneration(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint paletteBackground()
		{
			uint result = this.SwigDerivedClassHasMethod("paletteBackground", OdGiContext.swigMethodTypes18) ? GlobalsPINVOKE.OdGiContext_paletteBackgroundSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_paletteBackground(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool fillTtf()
		{
			bool result = this.SwigDerivedClassHasMethod("fillTtf", OdGiContext.swigMethodTypes19) ? GlobalsPINVOKE.OdGiContext_fillTtfSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_fillTtf(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint numberOfIsolines()
		{
			uint result = this.SwigDerivedClassHasMethod("numberOfIsolines", OdGiContext.swigMethodTypes20) ? GlobalsPINVOKE.OdGiContext_numberOfIsolinesSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_numberOfIsolines(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool fillMode()
		{
			bool result = this.SwigDerivedClassHasMethod("fillMode", OdGiContext.swigMethodTypes21) ? GlobalsPINVOKE.OdGiContext_fillModeSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_fillMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool quickTextMode()
		{
			bool result = this.SwigDerivedClassHasMethod("quickTextMode", OdGiContext.swigMethodTypes22) ? GlobalsPINVOKE.OdGiContext_quickTextModeSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_quickTextMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint textQuality()
		{
			uint result = this.SwigDerivedClassHasMethod("textQuality", OdGiContext.swigMethodTypes23) ? GlobalsPINVOKE.OdGiContext_textQualitySwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_textQuality(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiContext.ImageQuality imageQuality()
		{
			OdGiContext.ImageQuality result = (OdGiContext.ImageQuality)(this.SwigDerivedClassHasMethod("imageQuality", OdGiContext.swigMethodTypes24) ? GlobalsPINVOKE.OdGiContext_imageQualitySwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_imageQuality(this.swigCPtr));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint fadingIntensityPercentage()
		{
			uint result = this.SwigDerivedClassHasMethod("fadingIntensityPercentage", OdGiContext.swigMethodTypes25) ? GlobalsPINVOKE.OdGiContext_fadingIntensityPercentageSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_fadingIntensityPercentage(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint glyphSize(OdGiContext.GlyphType glyphType)
		{
			uint result = this.SwigDerivedClassHasMethod("glyphSize", OdGiContext.swigMethodTypes26) ? GlobalsPINVOKE.OdGiContext_glyphSizeSwigExplicitOdGiContext(this.swigCPtr, (int)glyphType) : GlobalsPINVOKE.OdGiContext_glyphSize(this.swigCPtr, (int)glyphType);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint lineWeightConfiguration(OdGiContext.LineWeightStyle styleEntry)
		{
			uint result = this.SwigDerivedClassHasMethod("lineWeightConfiguration", OdGiContext.swigMethodTypes27) ? GlobalsPINVOKE.OdGiContext_lineWeightConfigurationSwigExplicitOdGiContext(this.swigCPtr, (int)styleEntry) : GlobalsPINVOKE.OdGiContext_lineWeightConfiguration(this.swigCPtr, (int)styleEntry);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual IntPtr drawableFilterFunctionId(OdDbStub viewportId)
		{
			IntPtr result = this.SwigDerivedClassHasMethod("drawableFilterFunctionId", OdGiContext.swigMethodTypes28) ? GlobalsPINVOKE.OdGiContext_drawableFilterFunctionIdSwigExplicitOdGiContext(this.swigCPtr, OdDbStub.getCPtr(viewportId)) : GlobalsPINVOKE.OdGiContext_drawableFilterFunctionId(this.swigCPtr, OdDbStub.getCPtr(viewportId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint drawableFilterFunction(IntPtr functionId, OdGiDrawable pDrawable, uint nFlags)
		{
			uint result = this.SwigDerivedClassHasMethod("drawableFilterFunction", OdGiContext.swigMethodTypes29) ? GlobalsPINVOKE.OdGiContext_drawableFilterFunctionSwigExplicitOdGiContext(this.swigCPtr, functionId, OdGiDrawable.getCPtr(pDrawable), nFlags) : GlobalsPINVOKE.OdGiContext_drawableFilterFunction(this.swigCPtr, functionId, OdGiDrawable.getCPtr(pDrawable), nFlags);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool ttfPolyDraw()
		{
			bool result = this.SwigDerivedClassHasMethod("ttfPolyDraw", OdGiContext.swigMethodTypes30) ? GlobalsPINVOKE.OdGiContext_ttfPolyDrawSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_ttfPolyDraw(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool regenAbort()
		{
			bool result = this.SwigDerivedClassHasMethod("regenAbort", OdGiContext.swigMethodTypes31) ? GlobalsPINVOKE.OdGiContext_regenAbortSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_regenAbort(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiContext.PStyleType plotStyleType()
		{
			OdGiContext.PStyleType result = (OdGiContext.PStyleType)(this.SwigDerivedClassHasMethod("plotStyleType", OdGiContext.swigMethodTypes32) ? GlobalsPINVOKE.OdGiContext_plotStyleTypeSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_plotStyleType(this.swigCPtr));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void plotStyle(int penNumber, OdPsPlotStyleData plotStyleData)
		{
			if (this.SwigDerivedClassHasMethod("plotStyle", OdGiContext.swigMethodTypes33))
			{
				GlobalsPINVOKE.OdGiContext_plotStyleSwigExplicitOdGiContext__SWIG_0(this.swigCPtr, penNumber, OdPsPlotStyleData.getCPtr(plotStyleData));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_plotStyle__SWIG_0(this.swigCPtr, penNumber, OdPsPlotStyleData.getCPtr(plotStyleData));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void plotStyle(OdDbStub objectId, OdPsPlotStyleData plotStyleData)
		{
			if (this.SwigDerivedClassHasMethod("plotStyle", OdGiContext.swigMethodTypes34))
			{
				GlobalsPINVOKE.OdGiContext_plotStyleSwigExplicitOdGiContext__SWIG_1(this.swigCPtr, OdDbStub.getCPtr(objectId), OdPsPlotStyleData.getCPtr(plotStyleData));
			}
			else
			{
				GlobalsPINVOKE.OdGiContext_plotStyle__SWIG_1(this.swigCPtr, OdDbStub.getCPtr(objectId), OdPsPlotStyleData.getCPtr(plotStyleData));
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdDbStub getStubByID(ulong persistentId)
		{
			IntPtr intPtr = this.SwigDerivedClassHasMethod("getStubByID", OdGiContext.swigMethodTypes35) ? GlobalsPINVOKE.OdGiContext_getStubByIDSwigExplicitOdGiContext(this.swigCPtr, persistentId) : GlobalsPINVOKE.OdGiContext_getStubByID(this.swigCPtr, persistentId);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual ulong getIDByStub(OdDbStub objectId)
		{
			ulong result = GlobalsPINVOKE.OdGiContext_getIDByStub(this.swigCPtr, OdDbStub.getCPtr(objectId));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdRxObject getDatabaseByStub(OdDbStub objectId)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(this.SwigDerivedClassHasMethod("getDatabaseByStub", OdGiContext.swigMethodTypes36) ? GlobalsPINVOKE.OdGiContext_getDatabaseByStubSwigExplicitOdGiContext(this.swigCPtr, OdDbStub.getCPtr(objectId)) : GlobalsPINVOKE.OdGiContext_getDatabaseByStub(this.swigCPtr, OdDbStub.getCPtr(objectId)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub getOwnerIDByStub(OdDbStub objectId)
		{
			IntPtr intPtr = this.SwigDerivedClassHasMethod("getOwnerIDByStub", OdGiContext.swigMethodTypes37) ? GlobalsPINVOKE.OdGiContext_getOwnerIDByStubSwigExplicitOdGiContext(this.swigCPtr, OdDbStub.getCPtr(objectId)) : GlobalsPINVOKE.OdGiContext_getOwnerIDByStub(this.swigCPtr, OdDbStub.getCPtr(objectId));
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbStub getStubByMatName(string strMatName)
		{
			IntPtr intPtr = this.SwigDerivedClassHasMethod("getStubByMatName", OdGiContext.swigMethodTypes38) ? GlobalsPINVOKE.OdGiContext_getStubByMatNameSwigExplicitOdGiContext(this.swigCPtr, strMatName) : GlobalsPINVOKE.OdGiContext_getStubByMatName(this.swigCPtr, strMatName);
			OdDbStub result = (intPtr == IntPtr.Zero) ? null : new OdDbStub(intPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool displaySilhouettes()
		{
			bool result = this.SwigDerivedClassHasMethod("displaySilhouettes", OdGiContext.swigMethodTypes39) ? GlobalsPINVOKE.OdGiContext_displaySilhouettesSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_displaySilhouettes(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdGiSectionGeometryManager getSectionGeometryManager()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = this.SwigDerivedClassHasMethod("getSectionGeometryManager", OdGiContext.swigMethodTypes40) ? GlobalsPINVOKE.OdGiContext_getSectionGeometryManagerSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_getSectionGeometryManager(this.swigCPtr);
			OdGiSectionGeometryManager result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiSectionGeometryManager)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiSectionGeometryManager)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiSectionGeometryManager)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual uint antiAliasingMode()
		{
			uint result = this.SwigDerivedClassHasMethod("antiAliasingMode", OdGiContext.swigMethodTypes41) ? GlobalsPINVOKE.OdGiContext_antiAliasingModeSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_antiAliasingMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual bool xrefPropertiesOverride()
		{
			bool result = this.SwigDerivedClassHasMethod("xrefPropertiesOverride", OdGiContext.swigMethodTypes42) ? GlobalsPINVOKE.OdGiContext_xrefPropertiesOverrideSwigExplicitOdGiContext(this.swigCPtr) : GlobalsPINVOKE.OdGiContext_xrefPropertiesOverride(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private void SwigDirectorConnect()
		{
			if (this.SwigDerivedClassHasMethod("queryX", OdGiContext.swigMethodTypes0))
			{
				this.swigDelegate0 = new OdGiContext.SwigDelegateOdGiContext_0(this.SwigDirectorqueryX);
			}
			if (this.SwigDerivedClassHasMethod("isA", OdGiContext.swigMethodTypes1))
			{
				this.swigDelegate1 = new OdGiContext.SwigDelegateOdGiContext_1(this.SwigDirectorisA);
			}
			if (this.SwigDerivedClassHasMethod("database", OdGiContext.swigMethodTypes2))
			{
				this.swigDelegate2 = new OdGiContext.SwigDelegateOdGiContext_2(this.SwigDirectordatabase);
			}
			if (this.SwigDerivedClassHasMethod("openDrawable", OdGiContext.swigMethodTypes3))
			{
				this.swigDelegate3 = new OdGiContext.SwigDelegateOdGiContext_3(this.SwigDirectoropenDrawable);
			}
			if (this.SwigDerivedClassHasMethod("defaultLineWeight", OdGiContext.swigMethodTypes4))
			{
				this.swigDelegate4 = new OdGiContext.SwigDelegateOdGiContext_4(this.SwigDirectordefaultLineWeight);
			}
			if (this.SwigDerivedClassHasMethod("commonLinetypeScale", OdGiContext.swigMethodTypes5))
			{
				this.swigDelegate5 = new OdGiContext.SwigDelegateOdGiContext_5(this.SwigDirectorcommonLinetypeScale);
			}
			if (this.SwigDerivedClassHasMethod("getDefaultTextStyle", OdGiContext.swigMethodTypes6))
			{
				this.swigDelegate6 = new OdGiContext.SwigDelegateOdGiContext_6(this.SwigDirectorgetDefaultTextStyle);
			}
			if (this.SwigDerivedClassHasMethod("drawShape", OdGiContext.swigMethodTypes7))
			{
				this.swigDelegate7 = new OdGiContext.SwigDelegateOdGiContext_7(this.SwigDirectordrawShape__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("drawShape", OdGiContext.swigMethodTypes8))
			{
				this.swigDelegate8 = new OdGiContext.SwigDelegateOdGiContext_8(this.SwigDirectordrawShape__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes9))
			{
				this.swigDelegate9 = new OdGiContext.SwigDelegateOdGiContext_9(this.SwigDirectordrawText__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes10))
			{
				this.swigDelegate10 = new OdGiContext.SwigDelegateOdGiContext_10(this.SwigDirectordrawText__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes11))
			{
				this.swigDelegate11 = new OdGiContext.SwigDelegateOdGiContext_11(this.SwigDirectordrawText__SWIG_2);
			}
			if (this.SwigDerivedClassHasMethod("drawText", OdGiContext.swigMethodTypes12))
			{
				this.swigDelegate12 = new OdGiContext.SwigDelegateOdGiContext_12(this.SwigDirectordrawText__SWIG_3);
			}
			if (this.SwigDerivedClassHasMethod("textExtentsBox", OdGiContext.swigMethodTypes13))
			{
				this.swigDelegate13 = new OdGiContext.SwigDelegateOdGiContext_13(this.SwigDirectortextExtentsBox__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("textExtentsBox", OdGiContext.swigMethodTypes14))
			{
				this.swigDelegate14 = new OdGiContext.SwigDelegateOdGiContext_14(this.SwigDirectortextExtentsBox__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("shapeExtentsBox", OdGiContext.swigMethodTypes15))
			{
				this.swigDelegate15 = new OdGiContext.SwigDelegateOdGiContext_15(this.SwigDirectorshapeExtentsBox);
			}
			if (this.SwigDerivedClassHasMethod("circleZoomPercent", OdGiContext.swigMethodTypes16))
			{
				this.swigDelegate16 = new OdGiContext.SwigDelegateOdGiContext_16(this.SwigDirectorcircleZoomPercent);
			}
			if (this.SwigDerivedClassHasMethod("isPlotGeneration", OdGiContext.swigMethodTypes17))
			{
				this.swigDelegate17 = new OdGiContext.SwigDelegateOdGiContext_17(this.SwigDirectorisPlotGeneration);
			}
			if (this.SwigDerivedClassHasMethod("paletteBackground", OdGiContext.swigMethodTypes18))
			{
				this.swigDelegate18 = new OdGiContext.SwigDelegateOdGiContext_18(this.SwigDirectorpaletteBackground);
			}
			if (this.SwigDerivedClassHasMethod("fillTtf", OdGiContext.swigMethodTypes19))
			{
				this.swigDelegate19 = new OdGiContext.SwigDelegateOdGiContext_19(this.SwigDirectorfillTtf);
			}
			if (this.SwigDerivedClassHasMethod("numberOfIsolines", OdGiContext.swigMethodTypes20))
			{
				this.swigDelegate20 = new OdGiContext.SwigDelegateOdGiContext_20(this.SwigDirectornumberOfIsolines);
			}
			if (this.SwigDerivedClassHasMethod("fillMode", OdGiContext.swigMethodTypes21))
			{
				this.swigDelegate21 = new OdGiContext.SwigDelegateOdGiContext_21(this.SwigDirectorfillMode);
			}
			if (this.SwigDerivedClassHasMethod("quickTextMode", OdGiContext.swigMethodTypes22))
			{
				this.swigDelegate22 = new OdGiContext.SwigDelegateOdGiContext_22(this.SwigDirectorquickTextMode);
			}
			if (this.SwigDerivedClassHasMethod("textQuality", OdGiContext.swigMethodTypes23))
			{
				this.swigDelegate23 = new OdGiContext.SwigDelegateOdGiContext_23(this.SwigDirectortextQuality);
			}
			if (this.SwigDerivedClassHasMethod("imageQuality", OdGiContext.swigMethodTypes24))
			{
				this.swigDelegate24 = new OdGiContext.SwigDelegateOdGiContext_24(this.SwigDirectorimageQuality);
			}
			if (this.SwigDerivedClassHasMethod("fadingIntensityPercentage", OdGiContext.swigMethodTypes25))
			{
				this.swigDelegate25 = new OdGiContext.SwigDelegateOdGiContext_25(this.SwigDirectorfadingIntensityPercentage);
			}
			if (this.SwigDerivedClassHasMethod("glyphSize", OdGiContext.swigMethodTypes26))
			{
				this.swigDelegate26 = new OdGiContext.SwigDelegateOdGiContext_26(this.SwigDirectorglyphSize);
			}
			if (this.SwigDerivedClassHasMethod("lineWeightConfiguration", OdGiContext.swigMethodTypes27))
			{
				this.swigDelegate27 = new OdGiContext.SwigDelegateOdGiContext_27(this.SwigDirectorlineWeightConfiguration);
			}
			if (this.SwigDerivedClassHasMethod("drawableFilterFunctionId", OdGiContext.swigMethodTypes28))
			{
				this.swigDelegate28 = new OdGiContext.SwigDelegateOdGiContext_28(this.SwigDirectordrawableFilterFunctionId);
			}
			if (this.SwigDerivedClassHasMethod("drawableFilterFunction", OdGiContext.swigMethodTypes29))
			{
				this.swigDelegate29 = new OdGiContext.SwigDelegateOdGiContext_29(this.SwigDirectordrawableFilterFunction);
			}
			if (this.SwigDerivedClassHasMethod("ttfPolyDraw", OdGiContext.swigMethodTypes30))
			{
				this.swigDelegate30 = new OdGiContext.SwigDelegateOdGiContext_30(this.SwigDirectorttfPolyDraw);
			}
			if (this.SwigDerivedClassHasMethod("regenAbort", OdGiContext.swigMethodTypes31))
			{
				this.swigDelegate31 = new OdGiContext.SwigDelegateOdGiContext_31(this.SwigDirectorregenAbort);
			}
			if (this.SwigDerivedClassHasMethod("plotStyleType", OdGiContext.swigMethodTypes32))
			{
				this.swigDelegate32 = new OdGiContext.SwigDelegateOdGiContext_32(this.SwigDirectorplotStyleType);
			}
			if (this.SwigDerivedClassHasMethod("plotStyle", OdGiContext.swigMethodTypes33))
			{
				this.swigDelegate33 = new OdGiContext.SwigDelegateOdGiContext_33(this.SwigDirectorplotStyle__SWIG_0);
			}
			if (this.SwigDerivedClassHasMethod("plotStyle", OdGiContext.swigMethodTypes34))
			{
				this.swigDelegate34 = new OdGiContext.SwigDelegateOdGiContext_34(this.SwigDirectorplotStyle__SWIG_1);
			}
			if (this.SwigDerivedClassHasMethod("getStubByID", OdGiContext.swigMethodTypes35))
			{
				this.swigDelegate35 = new OdGiContext.SwigDelegateOdGiContext_35(this.SwigDirectorgetStubByID);
			}
			if (this.SwigDerivedClassHasMethod("getDatabaseByStub", OdGiContext.swigMethodTypes36))
			{
				this.swigDelegate36 = new OdGiContext.SwigDelegateOdGiContext_36(this.SwigDirectorgetDatabaseByStub);
			}
			if (this.SwigDerivedClassHasMethod("getOwnerIDByStub", OdGiContext.swigMethodTypes37))
			{
				this.swigDelegate37 = new OdGiContext.SwigDelegateOdGiContext_37(this.SwigDirectorgetOwnerIDByStub);
			}
			if (this.SwigDerivedClassHasMethod("getStubByMatName", OdGiContext.swigMethodTypes38))
			{
				this.swigDelegate38 = new OdGiContext.SwigDelegateOdGiContext_38(this.SwigDirectorgetStubByMatName);
			}
			if (this.SwigDerivedClassHasMethod("displaySilhouettes", OdGiContext.swigMethodTypes39))
			{
				this.swigDelegate39 = new OdGiContext.SwigDelegateOdGiContext_39(this.SwigDirectordisplaySilhouettes);
			}
			if (this.SwigDerivedClassHasMethod("getSectionGeometryManager", OdGiContext.swigMethodTypes40))
			{
				this.swigDelegate40 = new OdGiContext.SwigDelegateOdGiContext_40(this.SwigDirectorgetSectionGeometryManager);
			}
			if (this.SwigDerivedClassHasMethod("antiAliasingMode", OdGiContext.swigMethodTypes41))
			{
				this.swigDelegate41 = new OdGiContext.SwigDelegateOdGiContext_41(this.SwigDirectorantiAliasingMode);
			}
			if (this.SwigDerivedClassHasMethod("xrefPropertiesOverride", OdGiContext.swigMethodTypes42))
			{
				this.swigDelegate42 = new OdGiContext.SwigDelegateOdGiContext_42(this.SwigDirectorxrefPropertiesOverride);
			}
			GlobalsPINVOKE.OdGiContext_director_connect(this.swigCPtr, this.swigDelegate0, this.swigDelegate1, this.swigDelegate2, this.swigDelegate3, this.swigDelegate4, this.swigDelegate5, this.swigDelegate6, this.swigDelegate7, this.swigDelegate8, this.swigDelegate9, this.swigDelegate10, this.swigDelegate11, this.swigDelegate12, this.swigDelegate13, this.swigDelegate14, this.swigDelegate15, this.swigDelegate16, this.swigDelegate17, this.swigDelegate18, this.swigDelegate19, this.swigDelegate20, this.swigDelegate21, this.swigDelegate22, this.swigDelegate23, this.swigDelegate24, this.swigDelegate25, this.swigDelegate26, this.swigDelegate27, this.swigDelegate28, this.swigDelegate29, this.swigDelegate30, this.swigDelegate31, this.swigDelegate32, this.swigDelegate33, this.swigDelegate34, this.swigDelegate35, this.swigDelegate36, this.swigDelegate37, this.swigDelegate38, this.swigDelegate39, this.swigDelegate40, this.swigDelegate41, this.swigDelegate42);
		}

		private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes)
		{
			MethodInfo method = base.GetType().GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, methodTypes, null);
			return method.DeclaringType.IsSubclassOf(typeof(OdGiContext));
		}

		private IntPtr SwigDirectorqueryX(IntPtr protocolClass)
		{
			return OdRxObject.getCPtr(this.queryX((OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(protocolClass, false))).Handle;
		}

		private IntPtr SwigDirectorisA()
		{
			return OdRxClass.getCPtr(this.isA()).Handle;
		}

		private IntPtr SwigDirectordatabase()
		{
			return OdRxObject.getCPtr(this.database()).Handle;
		}

		private IntPtr SwigDirectoropenDrawable(IntPtr drawableId)
		{
			return OdGiDrawable.getCPtr(this.openDrawable((drawableId == IntPtr.Zero) ? null : new OdDbStub(drawableId, false))).Handle;
		}

		private int SwigDirectordefaultLineWeight()
		{
			return (int)this.defaultLineWeight();
		}

		private double SwigDirectorcommonLinetypeScale()
		{
			return this.commonLinetypeScale();
		}

		private void SwigDirectorgetDefaultTextStyle(IntPtr textStyle)
		{
			this.getDefaultTextStyle(new OdGiTextStyle(textStyle, false));
		}

		private void SwigDirectordrawShape__SWIG_0(IntPtr pDraw, IntPtr position, int shapeNumber, IntPtr pTextStyle)
		{
			this.drawShape((OdGiCommonDraw)Teigha.Core.Helpers.odrxCreateObjectInternal(pDraw, false), new OdGePoint3d(position, false), shapeNumber, (pTextStyle == IntPtr.Zero) ? null : new OdGiTextStyle(pTextStyle, false));
		}

		private void SwigDirectordrawShape__SWIG_1(IntPtr pDest, IntPtr position, IntPtr direction, IntPtr upVector, int shapeNumber, IntPtr pTextStyle, IntPtr pExtrusion)
		{
			this.drawShape(new OdGiConveyorGeometry_Internal(pDest, false), new OdGePoint3d(position, false), new OdGeVector3d(direction, false), new OdGeVector3d(upVector, false), shapeNumber, (pTextStyle == IntPtr.Zero) ? null : new OdGiTextStyle(pTextStyle, false), (pExtrusion == IntPtr.Zero) ? null : new OdGeVector3d(pExtrusion, false));
		}

		private void SwigDirectordrawText__SWIG_0(IntPtr pDraw, IntPtr position, [MarshalAs(UnmanagedType.LPWStr)] string msg, IntPtr pTextStyle, uint flags)
		{
			this.drawText((OdGiCommonDraw)Teigha.Core.Helpers.odrxCreateObjectInternal(pDraw, false), new OdGePoint3d(position, false), msg, (pTextStyle == IntPtr.Zero) ? null : new OdGiTextStyle(pTextStyle, false), flags);
		}

		private void SwigDirectordrawText__SWIG_1(IntPtr pDraw, IntPtr position, [MarshalAs(UnmanagedType.LPWStr)] string msg, IntPtr pTextStyle)
		{
			this.drawText((OdGiCommonDraw)Teigha.Core.Helpers.odrxCreateObjectInternal(pDraw, false), new OdGePoint3d(position, false), msg, (pTextStyle == IntPtr.Zero) ? null : new OdGiTextStyle(pTextStyle, false));
		}

		private void SwigDirectordrawText__SWIG_2(IntPtr pDraw, IntPtr position, double height, double width, double oblique, [MarshalAs(UnmanagedType.LPWStr)] string msg)
		{
			this.drawText((OdGiCommonDraw)Teigha.Core.Helpers.odrxCreateObjectInternal(pDraw, false), new OdGePoint3d(position, false), height, width, oblique, msg);
		}

		private void SwigDirectordrawText__SWIG_3(IntPtr pDest, IntPtr position, IntPtr direction, IntPtr upVector, [MarshalAs(UnmanagedType.LPWStr)] string msg, bool raw, IntPtr pTextStyle, IntPtr pExtrusion)
		{
			this.drawText(new OdGiConveyorGeometry_Internal(pDest, false), new OdGePoint3d(position, false), new OdGeVector3d(direction, false), new OdGeVector3d(upVector, false), msg, raw, (pTextStyle == IntPtr.Zero) ? null : new OdGiTextStyle(pTextStyle, false), (pExtrusion == IntPtr.Zero) ? null : new OdGeVector3d(pExtrusion, false));
		}

		private void SwigDirectortextExtentsBox__SWIG_0(IntPtr textStyle, [MarshalAs(UnmanagedType.LPWStr)] string msg, uint flags, IntPtr min, IntPtr max, IntPtr pEndPos)
		{
			this.textExtentsBox(new OdGiTextStyle(textStyle, false), msg, flags, new OdGePoint3d(min, false), new OdGePoint3d(max, false), (pEndPos == IntPtr.Zero) ? null : new OdGePoint3d(pEndPos, false));
		}

		private void SwigDirectortextExtentsBox__SWIG_1(IntPtr textStyle, [MarshalAs(UnmanagedType.LPWStr)] string msg, uint flags, IntPtr min, IntPtr max)
		{
			this.textExtentsBox(new OdGiTextStyle(textStyle, false), msg, flags, new OdGePoint3d(min, false), new OdGePoint3d(max, false));
		}

		private void SwigDirectorshapeExtentsBox(IntPtr textStyle, int shapeNumber, IntPtr min, IntPtr max)
		{
			this.shapeExtentsBox(new OdGiTextStyle(textStyle, false), shapeNumber, new OdGePoint3d(min, false), new OdGePoint3d(max, false));
		}

		private uint SwigDirectorcircleZoomPercent(IntPtr viewportId)
		{
			return this.circleZoomPercent((viewportId == IntPtr.Zero) ? null : new OdDbStub(viewportId, false));
		}

		private bool SwigDirectorisPlotGeneration()
		{
			return this.isPlotGeneration();
		}

		private uint SwigDirectorpaletteBackground()
		{
			return this.paletteBackground();
		}

		private bool SwigDirectorfillTtf()
		{
			return this.fillTtf();
		}

		private uint SwigDirectornumberOfIsolines()
		{
			return this.numberOfIsolines();
		}

		private bool SwigDirectorfillMode()
		{
			return this.fillMode();
		}

		private bool SwigDirectorquickTextMode()
		{
			return this.quickTextMode();
		}

		private uint SwigDirectortextQuality()
		{
			return this.textQuality();
		}

		private int SwigDirectorimageQuality()
		{
			return (int)this.imageQuality();
		}

		private uint SwigDirectorfadingIntensityPercentage()
		{
			return this.fadingIntensityPercentage();
		}

		private uint SwigDirectorglyphSize(int glyphType)
		{
			return this.glyphSize((OdGiContext.GlyphType)glyphType);
		}

		private uint SwigDirectorlineWeightConfiguration(int styleEntry)
		{
			return this.lineWeightConfiguration((OdGiContext.LineWeightStyle)styleEntry);
		}

		private IntPtr SwigDirectordrawableFilterFunctionId(IntPtr viewportId)
		{
			return this.drawableFilterFunctionId((viewportId == IntPtr.Zero) ? null : new OdDbStub(viewportId, false));
		}

		private uint SwigDirectordrawableFilterFunction(IntPtr functionId, IntPtr pDrawable, uint nFlags)
		{
			return this.drawableFilterFunction(functionId, (OdGiDrawable)Teigha.Core.Helpers.odrxCreateObjectInternal(pDrawable, false), nFlags);
		}

		private bool SwigDirectorttfPolyDraw()
		{
			return this.ttfPolyDraw();
		}

		private bool SwigDirectorregenAbort()
		{
			return this.regenAbort();
		}

		private int SwigDirectorplotStyleType()
		{
			return (int)this.plotStyleType();
		}

		private void SwigDirectorplotStyle__SWIG_0(int penNumber, IntPtr plotStyleData)
		{
			this.plotStyle(penNumber, new OdPsPlotStyleData(plotStyleData, false));
		}

		private void SwigDirectorplotStyle__SWIG_1(IntPtr objectId, IntPtr plotStyleData)
		{
			this.plotStyle((objectId == IntPtr.Zero) ? null : new OdDbStub(objectId, false), new OdPsPlotStyleData(plotStyleData, false));
		}

		private IntPtr SwigDirectorgetStubByID(ulong persistentId)
		{
			return OdDbStub.getCPtr(this.getStubByID(persistentId)).Handle;
		}

		private IntPtr SwigDirectorgetDatabaseByStub(IntPtr objectId)
		{
			return OdRxObject.getCPtr(this.getDatabaseByStub((objectId == IntPtr.Zero) ? null : new OdDbStub(objectId, false))).Handle;
		}

		private IntPtr SwigDirectorgetOwnerIDByStub(IntPtr objectId)
		{
			return OdDbStub.getCPtr(this.getOwnerIDByStub((objectId == IntPtr.Zero) ? null : new OdDbStub(objectId, false))).Handle;
		}

		private IntPtr SwigDirectorgetStubByMatName([MarshalAs(UnmanagedType.LPWStr)] string strMatName)
		{
			return OdDbStub.getCPtr(this.getStubByMatName(strMatName)).Handle;
		}

		private bool SwigDirectordisplaySilhouettes()
		{
			return this.displaySilhouettes();
		}

		private IntPtr SwigDirectorgetSectionGeometryManager()
		{
			return OdGiSectionGeometryManager.getCPtr(this.getSectionGeometryManager()).Handle;
		}

		private uint SwigDirectorantiAliasingMode()
		{
			return this.antiAliasingMode();
		}

		private bool SwigDirectorxrefPropertiesOverride()
		{
			return this.xrefPropertiesOverride();
		}

		private object locker = new object();

		private HandleRef swigCPtr;

		private OdGiContext.SwigDelegateOdGiContext_0 swigDelegate0;

		private OdGiContext.SwigDelegateOdGiContext_1 swigDelegate1;

		private OdGiContext.SwigDelegateOdGiContext_2 swigDelegate2;

		private OdGiContext.SwigDelegateOdGiContext_3 swigDelegate3;

		private OdGiContext.SwigDelegateOdGiContext_4 swigDelegate4;

		private OdGiContext.SwigDelegateOdGiContext_5 swigDelegate5;

		private OdGiContext.SwigDelegateOdGiContext_6 swigDelegate6;

		private OdGiContext.SwigDelegateOdGiContext_7 swigDelegate7;

		private OdGiContext.SwigDelegateOdGiContext_8 swigDelegate8;

		private OdGiContext.SwigDelegateOdGiContext_9 swigDelegate9;

		private OdGiContext.SwigDelegateOdGiContext_10 swigDelegate10;

		private OdGiContext.SwigDelegateOdGiContext_11 swigDelegate11;

		private OdGiContext.SwigDelegateOdGiContext_12 swigDelegate12;

		private OdGiContext.SwigDelegateOdGiContext_13 swigDelegate13;

		private OdGiContext.SwigDelegateOdGiContext_14 swigDelegate14;

		private OdGiContext.SwigDelegateOdGiContext_15 swigDelegate15;

		private OdGiContext.SwigDelegateOdGiContext_16 swigDelegate16;

		private OdGiContext.SwigDelegateOdGiContext_17 swigDelegate17;

		private OdGiContext.SwigDelegateOdGiContext_18 swigDelegate18;

		private OdGiContext.SwigDelegateOdGiContext_19 swigDelegate19;

		private OdGiContext.SwigDelegateOdGiContext_20 swigDelegate20;

		private OdGiContext.SwigDelegateOdGiContext_21 swigDelegate21;

		private OdGiContext.SwigDelegateOdGiContext_22 swigDelegate22;

		private OdGiContext.SwigDelegateOdGiContext_23 swigDelegate23;

		private OdGiContext.SwigDelegateOdGiContext_24 swigDelegate24;

		private OdGiContext.SwigDelegateOdGiContext_25 swigDelegate25;

		private OdGiContext.SwigDelegateOdGiContext_26 swigDelegate26;

		private OdGiContext.SwigDelegateOdGiContext_27 swigDelegate27;

		private OdGiContext.SwigDelegateOdGiContext_28 swigDelegate28;

		private OdGiContext.SwigDelegateOdGiContext_29 swigDelegate29;

		private OdGiContext.SwigDelegateOdGiContext_30 swigDelegate30;

		private OdGiContext.SwigDelegateOdGiContext_31 swigDelegate31;

		private OdGiContext.SwigDelegateOdGiContext_32 swigDelegate32;

		private OdGiContext.SwigDelegateOdGiContext_33 swigDelegate33;

		private OdGiContext.SwigDelegateOdGiContext_34 swigDelegate34;

		private OdGiContext.SwigDelegateOdGiContext_35 swigDelegate35;

		private OdGiContext.SwigDelegateOdGiContext_36 swigDelegate36;

		private OdGiContext.SwigDelegateOdGiContext_37 swigDelegate37;

		private OdGiContext.SwigDelegateOdGiContext_38 swigDelegate38;

		private OdGiContext.SwigDelegateOdGiContext_39 swigDelegate39;

		private OdGiContext.SwigDelegateOdGiContext_40 swigDelegate40;

		private OdGiContext.SwigDelegateOdGiContext_41 swigDelegate41;

		private OdGiContext.SwigDelegateOdGiContext_42 swigDelegate42;

		private static Type[] swigMethodTypes0 = new Type[]
		{
			typeof(OdRxClass)
		};

		private static Type[] swigMethodTypes1 = new Type[0];

		private static Type[] swigMethodTypes2 = new Type[0];

		private static Type[] swigMethodTypes3 = new Type[]
		{
			typeof(OdDbStub)
		};

		private static Type[] swigMethodTypes4 = new Type[0];

		private static Type[] swigMethodTypes5 = new Type[0];

		private static Type[] swigMethodTypes6 = new Type[]
		{
			typeof(OdGiTextStyle)
		};

		private static Type[] swigMethodTypes7 = new Type[]
		{
			typeof(OdGiCommonDraw),
			typeof(OdGePoint3d),
			typeof(int),
			typeof(OdGiTextStyle)
		};

		private static Type[] swigMethodTypes8 = new Type[]
		{
			typeof(OdGiConveyorGeometry),
			typeof(OdGePoint3d),
			typeof(OdGeVector3d),
			typeof(OdGeVector3d),
			typeof(int),
			typeof(OdGiTextStyle),
			typeof(OdGeVector3d)
		};

		private static Type[] swigMethodTypes9 = new Type[]
		{
			typeof(OdGiCommonDraw),
			typeof(OdGePoint3d),
			typeof(string),
			typeof(OdGiTextStyle),
			typeof(uint)
		};

		private static Type[] swigMethodTypes10 = new Type[]
		{
			typeof(OdGiCommonDraw),
			typeof(OdGePoint3d),
			typeof(string),
			typeof(OdGiTextStyle)
		};

		private static Type[] swigMethodTypes11 = new Type[]
		{
			typeof(OdGiCommonDraw),
			typeof(OdGePoint3d),
			typeof(double),
			typeof(double),
			typeof(double),
			typeof(string)
		};

		private static Type[] swigMethodTypes12 = new Type[]
		{
			typeof(OdGiConveyorGeometry),
			typeof(OdGePoint3d),
			typeof(OdGeVector3d),
			typeof(OdGeVector3d),
			typeof(string),
			typeof(bool),
			typeof(OdGiTextStyle),
			typeof(OdGeVector3d)
		};

		private static Type[] swigMethodTypes13 = new Type[]
		{
			typeof(OdGiTextStyle),
			typeof(string),
			typeof(uint),
			typeof(OdGePoint3d),
			typeof(OdGePoint3d),
			typeof(OdGePoint3d)
		};

		private static Type[] swigMethodTypes14 = new Type[]
		{
			typeof(OdGiTextStyle),
			typeof(string),
			typeof(uint),
			typeof(OdGePoint3d),
			typeof(OdGePoint3d)
		};

		private static Type[] swigMethodTypes15 = new Type[]
		{
			typeof(OdGiTextStyle),
			typeof(int),
			typeof(OdGePoint3d),
			typeof(OdGePoint3d)
		};

		private static Type[] swigMethodTypes16 = new Type[]
		{
			typeof(OdDbStub)
		};

		private static Type[] swigMethodTypes17 = new Type[0];

		private static Type[] swigMethodTypes18 = new Type[0];

		private static Type[] swigMethodTypes19 = new Type[0];

		private static Type[] swigMethodTypes20 = new Type[0];

		private static Type[] swigMethodTypes21 = new Type[0];

		private static Type[] swigMethodTypes22 = new Type[0];

		private static Type[] swigMethodTypes23 = new Type[0];

		private static Type[] swigMethodTypes24 = new Type[0];

		private static Type[] swigMethodTypes25 = new Type[0];

		private static Type[] swigMethodTypes26 = new Type[]
		{
			typeof(OdGiContext.GlyphType)
		};

		private static Type[] swigMethodTypes27 = new Type[]
		{
			typeof(OdGiContext.LineWeightStyle)
		};

		private static Type[] swigMethodTypes28 = new Type[]
		{
			typeof(OdDbStub)
		};

		private static Type[] swigMethodTypes29 = new Type[]
		{
			typeof(IntPtr),
			typeof(OdGiDrawable),
			typeof(uint)
		};

		private static Type[] swigMethodTypes30 = new Type[0];

		private static Type[] swigMethodTypes31 = new Type[0];

		private static Type[] swigMethodTypes32 = new Type[0];

		private static Type[] swigMethodTypes33 = new Type[]
		{
			typeof(int),
			typeof(OdPsPlotStyleData)
		};

		private static Type[] swigMethodTypes34 = new Type[]
		{
			typeof(OdDbStub),
			typeof(OdPsPlotStyleData)
		};

		private static Type[] swigMethodTypes35 = new Type[]
		{
			typeof(ulong)
		};

		private static Type[] swigMethodTypes36 = new Type[]
		{
			typeof(OdDbStub)
		};

		private static Type[] swigMethodTypes37 = new Type[]
		{
			typeof(OdDbStub)
		};

		private static Type[] swigMethodTypes38 = new Type[]
		{
			typeof(string)
		};

		private static Type[] swigMethodTypes39 = new Type[0];

		private static Type[] swigMethodTypes40 = new Type[0];

		private static Type[] swigMethodTypes41 = new Type[0];

		private static Type[] swigMethodTypes42 = new Type[0];

		public delegate IntPtr SwigDelegateOdGiContext_0(IntPtr protocolClass);

		public delegate IntPtr SwigDelegateOdGiContext_1();

		public delegate IntPtr SwigDelegateOdGiContext_2();

		public delegate IntPtr SwigDelegateOdGiContext_3(IntPtr drawableId);

		public delegate int SwigDelegateOdGiContext_4();

		public delegate double SwigDelegateOdGiContext_5();

		public delegate void SwigDelegateOdGiContext_6(IntPtr textStyle);

		public delegate void SwigDelegateOdGiContext_7(IntPtr pDraw, IntPtr position, int shapeNumber, IntPtr pTextStyle);

		public delegate void SwigDelegateOdGiContext_8(IntPtr pDest, IntPtr position, IntPtr direction, IntPtr upVector, int shapeNumber, IntPtr pTextStyle, IntPtr pExtrusion);

		public delegate void SwigDelegateOdGiContext_9(IntPtr pDraw, IntPtr position, [MarshalAs(UnmanagedType.LPWStr)] string msg, IntPtr pTextStyle, uint flags);

		public delegate void SwigDelegateOdGiContext_10(IntPtr pDraw, IntPtr position, [MarshalAs(UnmanagedType.LPWStr)] string msg, IntPtr pTextStyle);

		public delegate void SwigDelegateOdGiContext_11(IntPtr pDraw, IntPtr position, double height, double width, double oblique, [MarshalAs(UnmanagedType.LPWStr)] string msg);

		public delegate void SwigDelegateOdGiContext_12(IntPtr pDest, IntPtr position, IntPtr direction, IntPtr upVector, [MarshalAs(UnmanagedType.LPWStr)] string msg, bool raw, IntPtr pTextStyle, IntPtr pExtrusion);

		public delegate void SwigDelegateOdGiContext_13(IntPtr textStyle, [MarshalAs(UnmanagedType.LPWStr)] string msg, uint flags, IntPtr min, IntPtr max, IntPtr pEndPos);

		public delegate void SwigDelegateOdGiContext_14(IntPtr textStyle, [MarshalAs(UnmanagedType.LPWStr)] string msg, uint flags, IntPtr min, IntPtr max);

		public delegate void SwigDelegateOdGiContext_15(IntPtr textStyle, int shapeNumber, IntPtr min, IntPtr max);

		public delegate uint SwigDelegateOdGiContext_16(IntPtr viewportId);

		public delegate bool SwigDelegateOdGiContext_17();

		public delegate uint SwigDelegateOdGiContext_18();

		public delegate bool SwigDelegateOdGiContext_19();

		public delegate uint SwigDelegateOdGiContext_20();

		public delegate bool SwigDelegateOdGiContext_21();

		public delegate bool SwigDelegateOdGiContext_22();

		public delegate uint SwigDelegateOdGiContext_23();

		public delegate int SwigDelegateOdGiContext_24();

		public delegate uint SwigDelegateOdGiContext_25();

		public delegate uint SwigDelegateOdGiContext_26(int glyphType);

		public delegate uint SwigDelegateOdGiContext_27(int styleEntry);

		public delegate IntPtr SwigDelegateOdGiContext_28(IntPtr viewportId);

		public delegate uint SwigDelegateOdGiContext_29(IntPtr functionId, IntPtr pDrawable, uint nFlags);

		public delegate bool SwigDelegateOdGiContext_30();

		public delegate bool SwigDelegateOdGiContext_31();

		public delegate int SwigDelegateOdGiContext_32();

		public delegate void SwigDelegateOdGiContext_33(int penNumber, IntPtr plotStyleData);

		public delegate void SwigDelegateOdGiContext_34(IntPtr objectId, IntPtr plotStyleData);

		public delegate IntPtr SwigDelegateOdGiContext_35(ulong persistentId);

		public delegate IntPtr SwigDelegateOdGiContext_36(IntPtr objectId);

		public delegate IntPtr SwigDelegateOdGiContext_37(IntPtr objectId);

		public delegate IntPtr SwigDelegateOdGiContext_38([MarshalAs(UnmanagedType.LPWStr)] string strMatName);

		public delegate bool SwigDelegateOdGiContext_39();

		public delegate IntPtr SwigDelegateOdGiContext_40();

		public delegate uint SwigDelegateOdGiContext_41();

		public delegate bool SwigDelegateOdGiContext_42();

		public enum ImageQuality
		{
			kImageQualityDraft,
			kImageQualityHigh
		}

		public enum GlyphType
		{
			kLightGlyph,
			kCameraGlyph
		}

		public enum LineWeightStyle
		{
			kPointLineWeight,
			kLineCapStyle,
			kLineJoinStyle
		}

		public enum DrawableFilterInputFlags
		{
			kNestedDrawable = 16777216
		}

		public enum DrawableFilterOutputFlags
		{
			kSkipVectorization = 1
		}

		public enum DrawableFilterRanges : uint
		{
			kDrawableFilterAppRangeStart = 16777216u,
			kDrawableFilterAppRangeMask = 4278190080u
		}

		public enum PStyleType
		{
			kPsNone,
			kPsByColor,
			kPsByName
		}
	}
}
